﻿using AisEncodingLib.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AisEncodingLib.Models
{
	public class AisMessageType19
	{
		/// <summary>
		/// 用户ID
		/// </summary>
		public int Mmsi { get; init; }

		/// <summary>
		/// 消息ID
		/// </summary>
		public int MessageType { get; init; }

		/// <summary>
		/// 地面航线
		/// </summary>
		public double CourseOverGround { get; init; }

		/// <summary>
		/// 船体尺寸
		/// </summary>
		public int DimensionToBow { get; init; }

		/// <summary>
		/// 船体尺寸
		/// </summary>
		public int DimensionToPort { get; init; }

		/// <summary>
		/// 船体尺寸
		/// </summary>
		public int DimensionToStarboard { get; init; }

		/// <summary>
		/// 船体尺寸
		/// </summary>
		public int DimensionToStern { get; init; }

		/// <summary>
		/// 指配模式标志
		/// </summary>
		public bool IsAssigned { get; init; }

		/// <summary>
		/// DTE 数据终端就绪（0 = 可用；1 = 不可用 = 默认值）
		/// </summary>
		public bool IsDteNotReady { get; init; }

		/// <summary>
		/// 经度
		/// </summary>
		public double Longitude { get; init; }

		/// <summary>
		/// 纬度
		/// </summary>
		public double Latitude { get; init; }

		/// <summary>
		/// 位置准确度
		/// </summary>
		public bool PositionAccuracy { get; init; }

		/// <summary>
		/// 电子定位装置的类型
		/// </summary>
		public EpfdFixType PositionFixType { get; init; }

		/// <summary>
		/// RAIM标志
		/// 0 = RAIM未使用 = 默认值；
		/// 1 = RAIM正在使用
		/// </summary>
		public bool RaimFlag { get; init; }

		public int RegionalReserved139 { get; init; }

		public int RegionalReserved38 { get; init; }

		/// <summary>
		/// 转发指示符
		/// </summary>
		public int RepeatIndicator { get; init; }

		/// <summary>
		/// 船名
		/// </summary>
		public string ShipName { get; init; }

		/// <summary>
		/// 船舶和货物类型
		/// </summary>
		public ShipType ShipType { get; init; }

		public uint Spare308 { get; init; }

		/// <summary>
		/// 地面航速
		/// </summary>
		public double SpeedOverGround { get; init; }

		/// <summary>
		/// 时戳
		/// </summary>
		public int TimeStampSecond { get; init; }

		/// <summary>
		/// 实际航向
		/// </summary>
		public int TrueHeadingDegrees { get; init; }
	}
}
